Parallelrechner: Architekturen, Anwendungen, Entwicklungstrends

Parallelrechner: Architekturen, Anwendungen, Entwicklungstrends
Parallelrechner: Architekturen, Anwendungen, Entwicklungstrends
 
Architekturen von Parallelrechnern
 
Es gibt eine ganze Reihe von Möglichkeiten, wie mehrere Prozessoren zu einem Parallelrechner zusammengeschaltet werden können; die daraus resultierende Typenvielfalt wird nach dem internen Fluss der Daten- und Befehlsströme klassifiziert. Von einigen Spezialrechnern abgesehen, gehören moderne Supercomputer der MIMD(»Multiple Instruction, Multiple Data«)-Klasse an. Innerhalb dieser Klasse gibt es wiederum zwei Typen, die sich in der Organisation des Speichers unterscheiden. Je nachdem, ob Speichermodule den Prozessoren individuell oder in ihrer Gesamtheit zugeordnet sind, unterscheiden wir Multiprozessorsysteme und Multirechnersysteme.
 
Um die Forderung nach hoher Rechenkapazität erfüllen zu können, muss man möglichst viele der leistungsfähigsten Einzelsysteme zusammenschalten. Die Multiprozessorsysteme sind dabei für sehr große Prozessoranzahlen nicht geeignet: Da bei der Parallelverarbeitung alle Prozessoren an demselben Problem arbeiten, wird zwischen den auf ihnen laufenden Programmteilen (Prozessen) rege Interaktion stattfinden. Es wollen also viele Prozessoren auf dieselben Speicherbereiche zugreifen. Da zu einem bestimmten Zeitpunkt nur ein Prozessor zugreifen kann, müssen die anderen warten. Ihrer Skalierbarkeit, also der Möglichkeit, ihre Prozessoranzahl beliebig anwachsen zu lassen, ohne dass sie dabei ineffizient werden, sind daher enge Grenzen gesetzt. Die Multiprozessorsysteme dominieren jedoch im Bereich von bis zu 16 Prozessoren.
 
Bei höheren Prozessorzahlen konzentriert sich das Interesse auf Multirechnersysteme, da Speicherkonflikte hier nicht auftreten können; die Skalierbarkeit — eine der wichtigsten Eigenschaften eines massiv parallelen Rechners — hat hier wesentlich größeren Spielraum. Dafür wird die Kommunikation zwischen Programmteilen aufwendiger, sobald Prozessorgrenzen überschritten werden müssen. Eine gute Abstimmung des Verbindungsnetzwerks mit der Kommunikationsstruktur des parallelen Programms ist daher oft entscheidend für einen effizienten Betrieb.
 
Verbindungsnetze
 
Für die Leistungsfähigkeit eines Parallelrechners ist von entscheidender Bedeutung, auf welche Weise die Prozessoren und Speicherelemente miteinander verbunden werden. Bei Multiprozessoren kann eine geschickte Einrichtung des Verbindungsnetzes dabei helfen, das Problem der Zugriffskonflikte zu mildern, bei Multirechnern muss auf eine möglichst große Effizienz des Datenaustauschs geachtet werden. In jedem Fall sind es drei Faktoren, die die Geschwindigkeit der Datenübertragung im computerinternen Verbindungsnetz bestimmen: die Leistung der einzelnen Direktverbindungen, die Länge der Wege und der Grad der Parallelität (wie viele Knoten gleichzeitig übertragen können; Knoten sind die Verbindungspunkte zweier Datenleitungen).
 
Was aber heißt eigentlich »Geschwindigkeit der Datenübertragung«? Hier muss prinzipiell zwischen Übertragungsrate und Latenzzeit unterschieden werden. Während die Übertragungsrate angibt, wie viele Datenelemente pro Zeiteinheit übertragen werden, ist die Latenzzeit ein Maß dafür, wie lange die Übertragung eines einzelnen Datenelements dauert. Ein Lastwagen voll geladen mit digital bespielten Magnetbandkassetten besitzt eine höhere Übertragungsrate als eine schnelle Datenleitung, jedoch eine um viele Größenordnungen schlechtere Latenzzeit.
 
Höhere Leistung ist meist mit höheren Kosten verbunden, sodass hier ein günstiger Kompromiss gefunden werden muss. Die Kosten wachsen in der Regel proportional zur Anzahl der Leitungen und proportional zur Anzahl der Anschlüsse. Trotzdem ist es wünschenswert, dass es auch redundante Datenpfade zwischen Knoten gibt, da sie das Verbindungsnetz toleranter gegen eventuelle Ausfälle machen.
 
Welche Typen von Verbindungsnetzen gibt es? Sind die Komponenten des Rechensystems — die Prozessoren und Speicher — fest miteinander verbunden, sodass zwischen je zwei Komponenten eine direkte, private Leitung existiert, so heißt das Netz statisch (Punkt-zu-Punkt-Netz). Bei dynamischen Netzen muss erst eine Verbindung durchgeschaltet werden, wodurch andere Verbindungen blockiert werden können.
 
Das Extrembeispiel eines dynamischen Verbindungsnetzes ist der Bus, bei dem sich alle Komponenten genau eine Leitung teilen, sodass zu einem Zeitpunkt nur eine Übertragung stattfinden kann. Busse findet man in Multiprozessorsystemen mit geringer Prozessorzahl, bei denen die Wahrscheinlichkeit eines konkurrierenden Datentransports gering ist. Statische Punkt-zu-Punkt-Netze hingegen werden vorwiegend in Multirechnersystemen eingesetzt.
 
Kreis oder Würfel?
 
Vor allem die Topologie, also die Form der Verschaltung der Knoten, bestimmt die Charakteristik des Netzes. Parallelrechner verfügen fast immer über reguläre Strukturen mit gleichartigen Verbindungen. Ein erstes Kennzeichen der jeweiligen Topologie ist der Knotengrad, also die Anzahl der direkten Nachbarn eines Prozessors. Er ist entweder konstant oder von der Größe des Netzes abhängig. Weil für jede Verbindung beim Prozessor entsprechende Anschlüsse — die Ports — angebracht werden müssen, ist ein geringer und konstanter Knotengrad kostengünstig.
 
Die Strukturen mit der geringsten Konnektivität, bei der noch alle Knoten miteinander verbunden sind, sind die lineare Kette und der Ring. Mit einem konstanten Knotengrad von zwei sind sie kostengünstig zu realisieren, haben jedoch einen gleichförmig mit der Knotenzahl wachsenden Durchmesser. Sollen alle Prozessoren beliebig miteinander kommunizieren, so ergeben sich große Verzögerungen. Am anderen Ende des Spektrums steht die vollständige Vermaschung jedes Prozessors mit jedem. Bei einem solchen Netz steigt zwar die Verbindungszahl quadratisch mit der Zahl der Prozessoren, dies gilt jedoch nur bei einem idealen Durchmesser von eins. Diese Architektur verbietet sich in der Regel aus Kostengründen. Dagegen erfreute sich — zumindest eine Zeit lang — der Würfel und seine Verallgemeinerung in höheren Dimensionen, der Hyperwürfel, einer gewissen Beliebtheit, da er einen sinnvollen Kompromiss zwischen den Extremen »Ring« und »vollständige Vermaschung« darstellt. Seine mit der Knotenzahl wachsende Anzahl von Ports pro Prozessor setzt jedoch einer beliebigen Skalierbarkeit Grenzen.
 
Ein weiteres Kriterium für die Wahl einer bestimmten Topologie kann neben den allgemeinen Kosten-Leistungs-Verhältnissen die besondere Eignung für bestimmte Algorithmenklassen sein. Es beginnt sich abzuzeichnen, dass sich die meisten rechenintensiven Anwendungen in mehr oder weniger ausgeprägter Form mit der Nachbildung einzelner physikalischer Aspekte unserer dreidimensionalen Welt befassen. Dazu gehören beispielsweise Wettervorhersage, Klimamodelle, Aerodynamik, Molekulardynamik und Kosmologie. Alle diese Anwendungen beruhen auf einer Darstellung des dreidimensionalen Raums als Gitter und auf der parallelen Berechnung physikalischer Größen in den Gitterpunkten. Dabei ist meist zwischen räumlich benachbarten Knoten ein Informationsaustausch erforderlich. Die Kommunikation ist also lokal begrenzt, und die natürliche Kommunikationsstruktur solcher Anwendungen ist das dreidimensionale Gitter. Im Idealfall spiegelt die Verbindungsstruktur des Rechners exakt die Kommunikationsstruktur des parallelen Programms wider. Hersteller von Parallelrechnern studieren daher mit großer Sorgfalt die mit Parallelrechnern zu lösenden Probleme, um für eine möglichst große Bandbreite von Anwendungen eine geeignete Verbindungsstruktur anbieten zu können.
 
 Anwendungen - Die Simulation der Realität
 
Computersimulationen sind das Mittel der Wahl, wenn es darum geht, physische Vorgänge der realen Welt modellhaft nachzuvollziehen. Atome, Moleküle, Luftmassen oder ganze Himmelskörper werden durch ihre relevanten Größen wie Masse, Energie und Ort dargestellt, und im Computer kann ihre Bahn wie im realen Experiment verfolgt werden, indem man durch Anwendung der entsprechenden physikalischen Gesetze, die die Zusammenhänge und Wechselwirkungen beschreiben, die Entwicklung der Größen über die Zeit berechnet.
 
Die meisten Anwendungen des Supercomputing sind solche Simulationen. Das soll an einigen Beispielen verdeutlicht werden.
 
Crash-Simulation
 
Die Anforderungen an die Sicherheit von Automobilen steigen ständig. Daher bilden Analysen der Verformung der Karosserie bei verschiedenen Aufprallsituationen einen wesentlichen Teil der Arbeit bei der Entwicklung neuer Modelle. Für jede Untersuchung einen vollständigen Prototypen des Fahrzeugs zu Schrott zu fahren, ist zweifellos ein teures Unterfangen. Mit dem Aufkommen der numerischen Methode der finiten Elemente wurde es möglich, Crash-Untersuchungen zu einem großen Teil simulativ am Rechner durchzuführen. Dadurch spart man nicht nur Geld, man kann auch im Handumdrehen kleinere Korrekturen an der Karosserie vornehmen und ihre Auswirkung auf das Crash-Verhalten untersuchen.
 
Vollständige Crash-Simulationen gibt es etwa seit Mitte der Achtziger-Jahre. Das Fahrzeug wird dabei im Computer als Gittermodell dargestellt: Die Oberfläche aller Fahrzeugteile, die in die Simulation mit einbezogen werden sollen, wird mit einem imaginären Gitternetz überzogen, und jeder Knotenpunkt der Linien wird einzeln berechnet. Die Feinheit der Auflösung bestimmt die Genauigkeit der Ergebnisse, daher werden kritische Bereiche, etwa die Knautschzone im Frontbereich bei einem Frontalaufprall, feiner aufgelöst, dort werden mehr Gitterpunkte eingesetzt, sodass sich insgesamt eine eher inhomogene Gitterstruktur ergibt. Die ersten Crash-Simulationen begnügten sich mit etwa 5000 Gitterpunkten, mittlerweile sind jedoch die Anforderungen an die Genauigkeit so weit gestiegen, dass einige Hunderttausend Gitterpunkte für einen Pkw verwendet werden müssen. Für eine weitere Aufblähung des Modells sorgt die Berücksichtigung aller sicherheitsrelevanten Einrichtungen wie Rückhaltesysteme (Gurte, Gurtstraffer, Airbags). Da es letztlich um die Sicherheit der Insassen geht, müssen auch sie mitmodelliert werden.
 
Das Simulationsprogramm besteht aus einer großen Schleife, in der in jedem einzelnen Zeitschritt für alle Gitterpunkte die jeweiligen Kräfte, Beschleunigungen und Positionsänderungen berechnet werden. Der Löwenanteil der Rechenzeit wird für die Berechnung der internen Kräfte verwendet, die auf die Gitterpunkte wirken. Da die physikalischen Größen wie Position, Geschwindigkeit oder Beschleunigung der einzelnen Punkte von der Krafteinwirkung abhängen, welche die Nachbarpunkte ausüben, benötigt die Berechnung eines Punkts die aktuellen Daten aller dieser Nachbarpunkte. Hätte man einen Rechner mit Hunderttausenden von Prozessoren, so könnte man jedem Prozessor die Berechnung eines Gitterpunkts zuordnen. Heutige Parallelrechner besitzen jedoch meist deutlich weniger als 1000 Prozessoren, sodass die Parallelisierung in Form einer Partitionierung des Gitters stattfindet: Das Gitternetz wird in so viele Teile zerlegt, wie Prozessoren vorhanden sind. Jeder Prozessor ist für eine Partition der Gitterpunkte zuständig und führt für seine Punkte die jeweiligen Berechnungen durch. Für Gitterpunkte, die an den Partitionsgrenzen liegen, müssen die aktuellen Daten einiger Nachbarpunkte von anderen Prozessoren angefordert werden. Jeder Zeitschritt umfasst also neben der Rechenphase eine Kommunikationsphase, in der Daten über Randpunkte den betroffenen Prozessoren mitgeteilt werden. Die Arbeitsweise ist insofern synchron, als zu einem bestimmten Zeitpunkt alle Prozessoren denselben Zeitschritt bearbeiten. Benötigt ein Prozessor für die Aktualisierung seiner Gitterpunkte länger als andere, so müssen wegen der Datenabhängigkeiten alle anderen Prozessoren auf diesen langsamsten warten (Synchronisationsbarriere). Diese Wartezeiten sollten durch einen geschickten Lastenausgleich zwischen den Prozessoren so klein als möglich gehalten werden.
 
 
Ebenfalls zu gitterartigen Berechnungen führen Computersimulationen, mit denen Wettervorhersagen durchgeführt oder Klimaphänomene erforscht werden. Die Vorgänge in der Atmosphäre werden durch einen mathematischen Gleichungstyp, die nichtlinearen Differenzialgleichungen, beschrieben, für deren Lösung meist numerische Näherungsverfahren eingesetzt werden. Für die Wettervorhersage wird die Luft über der Erdoberfläche im Vorhersagegebiet in Quader zerlegt, und jeder dieser Quader wird durch charakteristische Größen wie Temperatur, Feuchtigkeit und Druck beschrieben. Diese Darstellung eines kontinuierlichen Raums durch eine endliche Zahl einzelner Punkte nennt man Diskretisierung. Auch die Zeit wird in einzelne Schritte zerlegt, also diskretisiert. Ausgehend von einer durch Messungen gegebenen Anfangssituation wird nun für jeden einzelnen Zeitschritt berechnet, wie sich die Größen weiterentwickeln. Dabei hängt der Zustand eines Quaders von allen benachbarten Quadern ab. Um also den Zustand eines Quaders zu einem bestimmten Zeitpunkt zu berechnen, benötigt man seinen Zustand und den aller seiner angrenzenden Nachbarn zum vorherigen Zeitpunkt. Stellt man sich jeden Quader als einen Punkt vor und die Datenabhängigkeit zwischen zwei Punkten als Verbindungslinie, so ergibt sich auch hier eine gleichmäßige dreidimensionale Gitterstruktur. Der Aufwand und die Güte der Vorhersage hängt dabei von der Auflösung des Gitters ab. Aktuelle Rechner erlauben eine horizontale Auflösung von einigen Kilometern. Man muss bedenken, dass bei einer Halbierung der Kantenlänge in allen drei Achsen der Rechenaufwand um das Achtfache steigt.
 
Klimamodelle arbeiten ähnlich, beziehen sich jedoch häufig auf den gesamten Planeten, müssen also in anderen zeitlichen und räumlichen Dimensionen arbeiten. Sie verwenden ein sehr viel gröberes räumliches Gitter und ein gröberes Zeitraster.
 
Vielteilchensimulation
 
Die Bewegung einer großen Zahl von Teilchen, beispielsweise der Moleküle eines Gases, nach den Gesetzen der Physik zu berechnen, ist ein sehr kompliziertes Problem. Jedes einzelne Gasteilchen ist verschiedenen Anziehungs- und Abstoßungskräften unterworfen, die seine Geschwindigkeit und seine Bewegungsrichtung steuern, und es beeinflusst seinerseits wieder die Bewegung der anderen Partikel. Das Verfahren, dieses komplexe Spiel von Kräften und Bewegungen für eine gegebene Menge von Teilchen mit dem Computer nachzubilden und zu beobachten, wie sich das System entwickelt, wird als Vielteilchensimulation bezeichnet.
 
Das Spektrum dieser Art von Simulation reicht von subatomaren Teilchen über atomare und molekulare Strukturen bis hin zu Himmelskörpern, bei denen die Bezeichnung »Teilchen« allerdings nicht mehr ganz angemessen ist. Auch hier wird in Zeitschritten gerechnet, und man beginnt mit einer Anfangsverteilung der Teilchen. Das Ziel ist, abhängig von der Teilchenzahl, entweder die Dynamik des Systems als Ganzes zu erfassen — etwa das Strömen eines Gases, das Fließen einer Flüssigkeit —, oder aber die Bewegung der einzelnen Partikel, beispielsweise der Planeten um die Sonne, zu beschreiben.
 
Ein großes Problem bei der Vielteilchensimulation ist die Lastenverteilung. Da man bei einer Vielteilchensimulation in aller Regel sehr viel mehr Teilchen simulieren möchte als Prozessoren vorhanden sind, muss man die Teilchen auf die Prozessoren verteilen. Ein Ansatz, dabei eine gleichmäßige Verteilung der Rechenlast zu erreichen, besteht darin, das gesamte modellierte Volumen in so viele Subvolumina zu teilen, wie Prozessoren vorhanden sind. Jeder Prozessor ist dann für die Berechnung der Teilchen zuständig, die sich in seinem Subvolumen befinden. Ein Prozessor muss dann mit all denjenigen Prozessoren Daten austauschen, die Teilchen enthalten, mit denen die eigenen Teilchen wechselwirken; dies sind meist nur die Partikel am Rand der Partitionen. Diese Lastenverteilung führt zu einer ausgeglichenen Rechenlast, wenn die Teilchen gleichmäßig über den Raum verteilt sind. Häufig kommt es jedoch zu Verdichtungsprozessen: Atome binden sich in Molekülen, Moleküle bilden Makromoleküle, Galaxien kollabieren, sodass nach einer gewissen Zeit einige Subvolumina von Teilchen übervölkert, während andere völlig leer sind. Die Prozessoren, denen leer gewordene Subvolumina zugeteilt wurden, haben dann nichts mehr zu tun, während die anderen völlig überlastet sind. Die Rechenleistung des Supercomputers sinkt dann rapide ab.
 
Derartige Situationen könnte man durch eine andere Art der Lastenverteilung vermeiden. So könnte man etwa jedem Prozessor eine gleich große Menge von Teilchen fest zuordnen. Dadurch wäre eine gleichmäßige Lastenverteilung garantiert. Diese Vorgehensweise hat jedoch den Nachteil, dass nun keine räumliche Zuständigkeit der Prozessoren gegeben ist, sondern nun zur Kräfteberechnung im Extremfall jeder Prozessor mit jedem anderen Prozessor kommunizieren muss. Da die Kommunikation über Prozessorgrenzen hinweg grundsätzlich aufwendig ist, führt dieser Ansatz trotz guter Lastenverteilung zu schlechter Auslastung des Rechners, da nun die Prozessoren die meiste Zeit damit verbringen, auf Zustandsgrößen von Teilchen anderer Prozessoren zu warten.
 
Master-Worker-Berechnungen
 
Wenn im »Jurassic Park« die Dinosaurier in verblüffend lebensechter Manier durch das Unterholz stapfen, so hat die Parallelcomputertechnik auch hieran ihren Anteil.
 
Die Berechnung des Aussehens dreidimensionaler Objekte in photorealistischer Qualität (Rendering) gehört zu den Aufgaben, die sich vergleichsweise leicht parallelisieren lassen, da sie so zerlegt werden können, dass alle Teilaufgaben unabhängig voneinander sind. Die Teile können daher vollständig simultan und in beliebiger Reihenfolge ausgeführt werden. Für solche Spezialeffekte in Kinofilmen wie »Titanic« oder, wie bereits erwähnt, »Jurassic Park« wendet man das Ray-Tracing-Verfahren an, das für jeden Punkt aller einzelnen Bilder durchgeführt werden muss und einen erheblichen Rechenaufwand bedeutet.
 
Bei einem Film kann sich die Szene verändern: Entweder die Gegenstände oder das Auge des Betrachters bewegen sich gemäß einem Skript entlang vorgegebener dreidimensionaler Wege. Will man nun einen Film von fünf Minuten Länge mit 30 Bildern pro Sekunde erzeugen, so müssen insgesamt 9000 Bilder berechnet werden. Einer der Prozessoren fungiert dabei als »Master«, er erzeugt die Szenenbeschreibungen für jedes einzelne Bild, während beliebig viele andere »Arbeiter«-Prozessoren (Worker) sich jeweils eine Szenenbeschreibung beim Master abholen, das Bild berechnen und das Ergebnis zurücksenden. Der Master ordnet die berechneten Bilder gemäß ihrer Nummer, also dem Zeitpunkt im Skript, ein und setzt sie zu einem Film zusammen. Die Bilder müssen dabei keineswegs in der richtigen Reihenfolge berechnet werden, wichtig ist nur, dass am Ende alle Bilder vorliegen. Solange noch Arbeit aussteht, sind alle Worker aktiv.
 
Bei Master-Worker-Programmen sind die Zeiten für die Fertigstellung eines Arbeitspakets meistens sehr lang im Vergleich zum Zeitbedarf für das Versenden der Aufgabenbeschreibung oder des Ergebnisses. Sie können daher auch in beliebigen vernetzten Rechnersystemen ausgeführt werden. Auf diese Weise wird gelegentlich auch das Internet als riesiger Parallelrechner benutzt. Jeder mit dem Internet verbundene Rechner kann an einer derartigen parallelen Berechnung teilnehmen. Da die meisten Benutzer die Rechenleistung ihres Computers nur zu einem Bruchteil auslasten, kann auf diese Weise weltweit brachliegende Kapazität eingesetzt werden. Das Knacken von kryptographischen Systemen und die Suche nach immer größeren Primzahlen mit bestimmten Eigenschaften sind Beispiele für die extrem rechenintensiven Aufgaben, für die sich eine solche Verteilung anbietet und für die sie, wenn auch meist in kleinem Maßstab, auch heute bereits angewandt wird.
 
 Entwicklungstrends
 
Um die Leistung von Supercomputern weiter zu steigern, wird man alle Möglichkeiten der Rechnertechnologie bis an ihre Grenzen ausreizen müssen. Die Fortschritte in der Mikroprozessortechnik bilden dabei nur einen der Faktoren: In den Neunzigerjahren ist der schnellste Einzelprozessor um den Faktor 15 schneller geworden, die Leistung der schnellsten Supercomputer insgesamt hingegen konnte um den Faktor 500 verbessert werden. Der wesentliche Geschwindigkeitsgewinn wurde also durch Parallelarbeit erzielt. Sollte der gegenwärtige Trend anhalten, so würden im Jahr 2010 Rechner der Petaflops-Klasse (1015 Fließkommaoperationen pro Sekunde) zur Verfügung stehen. Ein solcher Rechner würde in der Zeit, in der sich ein Lichtstrahl gerade eine Handspanne weit bewegt, eine Million Operationen ausführen! Wie könnte ein Computer aussehen, der solche Leistungen erbringt? Betrachten wir zunächst die Mikroprozessoren als elementare Bausteine der Parallelrechner. Expertenschätzungen gehen davon aus, dass die Taktrate für die gegenwärtig dominierende CMOS-Halbleitertechnologie (Complementary Metal Oxide Semiconductor) nur noch um einen Faktor von zwei bis drei ansteigen wird. Wenn wir weiter davon ausgehen, dass das Moore'sche Gesetz für die nächsten zehn Jahre weiter seine Gültigkeit behalten wird — das würde eine Leistungssteigerung von 128 bedeuten —, müsste ein weiterer Faktor von 50 auf andere Weise, also durch mehr Parallelität innerhalb des Prozessors, erzielt werden. Angesichts der Probleme, die bereits heute bestehen, um die superskalaren Pipelines der Prozessoren permanent zu beschäftigen, scheint dies kaum eine realistische Perspektive zu sein. Und selbst wenn wider Erwarten das Moore'sche Gesetz doch seine Gültigkeit beweisen würde, so wäre man von der Geschwindigkeit der Petaflops-Klasse immer noch einen Faktor acht entfernt; ein Faktor, der also dann durch verbesserte Parallelarbeit der Prozessoren erreicht werden müsste.
 
Zur Realisierung dieser Vorgabe wird als grundsätzliche Architektur weiterhin ein Multirechnersystem verwendet werden, dessen Knoten durch ein Hochleistungsnetz verbunden sind. Die einzelnen Knoten jedoch werden keine Einzelprozessoren sein, sondern selbst Multiprozessorsysteme, bei denen 16 oder mehr der schnellsten verfügbaren Prozessoren auf einen gemeinsamen Speicher zugreifen. Dabei wird man auch bei der Speicherorganisation neue Wege gehen müssen, um die vielen hungrigen Prozessoren schnell genug füttern zu können. Neue Probleme werden aus den immensen Datenmengen resultieren, die mit hoher Geschwindigkeit zwischen dem Hauptspeicher und den Hintergrundspeichern hin- und herzubewegen sind.
 
Können einzelne Supercomputer die geforderte Leistung nicht erbringen, so besteht infolge der weltweiten Vernetzung die Möglichkeit, die schnellsten Supercomputer für begrenzte Zeit zu koppeln. Diese unter dem Schlagwort Metacomputing verfolgte Richtung wird versuchen, die Supercomputing-Zentren der Welt mit Hochgeschwindigkeitsnetzen zu verbinden, um auf diese Weise Rechenkapazitäten zu akkumulieren. Ist ein solches Metacomputing-Netz einmal verfügbar, so kann ein Wissenschaftler an beliebiger Stelle eine Berechnung in Auftrag geben, die dann auf gerade verfügbare Supercomputer weltweit verteilt wird. Die Verteilung der Programme und Daten, das Einsammeln der Ergebnisse, der Umgang mit Rechnern unterschiedlichen Typs, das Tolerieren von Ausfällen einzelner Rechner oder Netzwerkverbindungen bereiten allerdings noch erhebliche Probleme.
 
Metacomputing
 
Die Frage, ob man derartige Rechenleistungen tatsächlich benötigen wird, und ob der enorme Aufwand, der hier getrieben werden muss, durch die Resultate überhaupt zu rechtfertigen ist, stellt sich immer weniger. Die Anwendungen des Höchstleistungsrechnens in Wissenschaft und Technik sind inzwischen so vielfältig wie die Wissenschaften selbst, und es gibt kaum einen Bereich, der nicht von Supercomputern in irgendeiner Weise profitieren kann. Es wird stets dringende wissenschaftliche Probleme geben, die mit den jeweils verfügbaren Rechenleistungen noch nicht zu lösen sind. Der Druck auf die Wissenschaftler und Ingenieure, immer leistungsfähigere Rechner zu bauen, wird daher bestehen bleiben. Das Zeitalter der virtuellen Realität als universelles Werkzeug zum Experimentieren hat gerade erst begonnen. Vielleicht hängt sogar die Zukunft unseres Planeten und seiner Bewohner von dem Erfolg dieser Bemühungen ab, denn gerade die von komplexen Computersimulationen lebende Klimaforschung könnte uns Wege aufweisen, wie wir uns verhalten müssen, um die Lebensbedingungen auf dieser Erde zu erhalten.
 
Prof. Dr. Hans-Ulrich Heiss
 
Weiterführende Erläuterungen finden Sie auch unter:
 
künstliche Intelligenz: Abschied von einer Illusion
 
Grundlegende Informationen finden Sie unter:
 
Parallelrechner: Wie macht man Computer schneller?
 
 
Bemmerl, Thomas: Programmierung skalierbarer Multiprozessoren. Mannheim u. a. 1992.
 Best, Eike: Semantik. Theorie sequenzieller und paralleler Programmierung. Braunschweig u. a. 1995.
 Heiss, Hans-Ulrich: Prozessorzuteilung in Parallelrechnern. Mannheim u. a. 1994.
 Huber, Walter: Paralleles Rechnen. München u. a. 1997.
 Kaufmann, William J. / Smarr, Larry L.: Simulierte Welten. Moleküle und Gewitter aus dem Computer. Aus dem Amerikanischen. Heidelberg u. a. 1994.
 Maurer, Christian: Grundzüge der nichtsequeniellen Programmierung. Einführung in die Konzepte der grundlegenden Programmiertechniken für Betriebssysteme, parallele Algorithmen, verteilte Systeme und Datenbanktransaktionen. Berlin u. a. 1999.
 
Parallelrechner. Architekturen - Systeme - Werkzeuge, herausgegeben von Klaus Waldschmidt. Stuttgart 1995.
 
Simulation. Computer zwischen Experiment und Theorie, herausgegeben von Valentin Braitenberg und Inga Hosp. Reinbek 1995.
 Ungerer, Theo: Parallelrechner und parallele Programmierung. Heidelberg u. a. 1997.
 Vollmar, Roland / Worsch, Thomas: Modelle der Parallelverarbeitung. Stuttgart 1995.

Universal-Lexikon. 2012.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Parallelrechner: Wie macht man Computer schneller? —   Während der massive Einsatz der Computertechnik in den verschiedensten Bereichen des täglichen Lebens für jedermann augenscheinlich ist, findet die Revolution in den wissenschaftlichen Labors eher im Stillen statt. Computer bilden inzwischen… …   Universal-Lexikon

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”